package cn.itcast.vo;

import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Setter
@Getter
public class PageBean {
    //    1、当前页码
    private int pageNum;
    //    2、每页显示条数
    private int pageSize;
    //    3、每页的数据
    private List list;
    //    4、总条数
    private Long total;
    //    5、总页数
    private int pages;
    //   6、上一页
    private int prePage;
    //    7、下一页
    private int nextPage;
    //    8、起始页码
    private int navigateFirstPage;
    //    9、结束页码
    private int navigateLastPage;
//    1、页面传入的  pageNum  pageSize
//    2、计算的  pages  prePage  nextPage  navigateFirstPage  navigateLastPage
//    3、查询的   list  total


    public PageBean(int pageNum,int pageSize,List list, long total){
        this.pageNum=pageNum;
        this.pageSize=pageSize;
        this.list=list;
        this.total=total;
//        计算总页数
        if(total%pageSize==0){
            this.pages = (int) (total/pageSize);
        }else{
            this.pages = ((int) (total/pageSize)) +1;
        }
//        计算上一页

        if(pageNum>1){
            this.prePage= pageNum-1;
        }else{
            this.prePage=1;
        }
//        计算下一页
        if(pageNum<pages){
            this.nextPage= pageNum+1;
        }else{
            this.nextPage=pages;
        }

//        navigateFirstPage  navigateLastPage
//        总页数是否超过5
        if(pages<=5){
            this.navigateFirstPage=1;
            this.navigateLastPage=pages;
        }else{
//            当前页码<=3
//            起始页码：1
//            结束页码：5
            if(this.pageNum<=3){
                this.navigateFirstPage=1;
                this.navigateLastPage=5;
            }else if( pages-pageNum <=2){
//                pages-pageNum <=2
//                起始页码：pages-4
//                结束页码：pages
                this.navigateFirstPage=pages-4;
                this.navigateLastPage=pages;
            }else{
//                以当前页码为中心 前：当前页-2 后：当前页+2
                this.navigateFirstPage=pageNum-2;
                this.navigateLastPage=pageNum+2;
            }
        }
    }


}
